package com.qk.management.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qk.domain.business.BusinessCountDO;
import com.qk.domain.business.BusinessDO;
import com.qk.dto.business.BusinessListDTO;
import com.qk.entity.Business;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface BusinessMapper extends BaseMapper<Business> {
    /**
     * 商机数据统计
     *
     * @return 商机统计数据
     */
    BusinessCountDO selectCountBusiness();
    
    /**
     * 根据ID查询商机（包含归属人信息）
     * 
     * @param id 商机ID
     * @return 商机对象（包含归属人姓名）
     */
    Business selectBusinessById(Integer id);
    
    /**
     * 商机列表查询
     * @param dto 查询条件
     * @param offset 偏移量
     * @param pageSize 每页大小
     * @return 商机列表
     */
    List<BusinessDO> selectBusinessList(@Param("dto") BusinessListDTO dto, @Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
    
    /**
     * 商机列表数量查询
     * @param dto 查询条件
     * @return 总数
     */
    Integer selectBusinessCount(@Param("dto") BusinessListDTO dto);
    
    /**
     * 公海商机列表查询
     * @param dto 查询条件
     * @param offset 偏移量
     * @param pageSize 每页大小
     * @return 公海商机列表
     */
    List<Business> selectBusinessPoolList(@Param("dto") BusinessListDTO dto, @Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
    
    /**
     * 公海商机数量查询
     * @param dto 查询条件
     * @return 总数
     */
    Integer selectBusinessPoolCount(@Param("dto") BusinessListDTO dto);
}